package thread;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 74646
 * Date: 2022-04-24
 * Time: 9:54
 */
public class TestDemo11 {
    // 获取线程的名字
    public static void main(String[] args) {
        Thread t = new Thread(){
            @Override
            public void run() {
                // 打印 t 线程的名字
                System.out.println("打印t线程名字的第一种方式"+Thread.currentThread().getName());
                /**
                 *  这个代码是通过继承 Thread 的方式创建线程
                 *  此时在 run 方法中可以直接通过 this 拿到当前线程 Thread 实例
                 */
                System.out.println("打印t线程名字的第二种方式"+this.getName());
            }
        };
        t.start();

        // 打印 main 线程的名字
        System.out.println("main 线程的名字"+Thread.currentThread().getName());

        Thread t1 = new Thread(new Runnable() {
            @Override
            public void run() {
                // 打印 t1 线程的名字
                System.out.println("t1 线程的名字"+Thread.currentThread().getName());
                /**
                 * 此时的this 指向的是 Runnable接口 , Runnable接口并没有 name 属性
                 * 只能通过 Thread.currentThread().getName() 获取线程的名字
                 */
                //System.out.println(this.getName());
            }
        });
        t1.start();

        // lambda 表达式是 Runnable 的简化写法，所以只能通过 hread.currentThread().getName() 获取线程的名字
    }
}
